package com.cata.mall.portal.service;

import com.cata.mall.model.CmsSubject;
import com.cata.mall.model.PmsProduct;
import com.cata.mall.model.PmsProductCategory;
import com.cata.mall.portal.domain.HomeContentResult;

import java.util.List;

/**
 * @作者: Tao
 * @日期: 2025/10/21
 * @时间: 09:46
 * @描述: 首页内容管理Service<pre>
 */
public interface HomeService {

    /**
     * 获取首页内容
     * @return 首页内容结果对象
     */
    HomeContentResult content();

    /**
     * 首页商品推荐
     * @param pageSize 每页显示数量
     * @param pageNum 页码
     * @return 推荐商品列表
     */
    List<PmsProduct> recommendProductList(Integer pageSize, Integer pageNum);

    /**
     * 获取商品分类
     * @param parentId 0:获取一级分类；其他：获取指定二级分类
     * @return 商品分类列表
     */
    List<PmsProductCategory> getProductCateList(Long parentId);

    /**
     * 根据专题分类id分页获取专题
     * @param cateId 专题分类id
     * @param pageSize 每页显示数量
     * @param pageNum 页码
     * @return 专题列表
     */
    List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum);

    /**
     * 分页获取人气推荐商品
     * @param pageNum 页码
     * @param pageSize 每页显示数量
     * @return 人气推荐商品列表
     */
    List<PmsProduct> hotProductList(Integer pageNum, Integer pageSize);

    /**
     * 分页获取新品推荐商品
     * @param pageNum 页码
     * @param pageSize 每页显示数量
     * @return 新品推荐商品列表
     */
    List<PmsProduct> newProductList(Integer pageNum, Integer pageSize);

}
